#pragma once

//@author A0096950U
#include "Task.h"

using namespace std;

enum CommandType {
	COMMAND_ADD,
	COMMAND_DELETE,
	COMMAND_MODIFY,
	COMMAND_TO,
	COMMAND_DONE,
	COMMAND_SEARCH,
	COMMAND_TODAY,
	COMMAND_UNDO,
	COMMAND_EXIT,
	COMMAND_ALL,
	COMMAND_INVALID
};

class Action {
private:

	CommandType command;
	Task *previousTask;
	Task *currentTask;

public:
	Action(CommandType command, Task currentTask);
	Action(CommandType command, Task currentTask, Task previousTask);

	CommandType getCommandType() const;
	Task getPreviousTask() const;
	Task getCurrentTask() const;
};

